Self - Solving Rubik Cube